#ifndef _TGRXIMPLDICTIONARY_H__
#define _TGRXIMPLDICTIONARY_H__

#if _MSC_VER > 1000
#pragma once
#endif

class TGRxImplDictionary : public TGRxDictionary  
{
	TGRX_DECLARE_MEMBERS(TGRxImplDictionary)

public:
			 TGRxImplDictionary();
	virtual ~TGRxImplDictionary();

public:
	
    virtual TGRxObject*		at(const char* pszKey) const;
    TGRxObject*				atPut(const char* pszKey, TGRxObject* pObject);
	
	POSITION				getStartPosition() const;
	void					getNextAssoc(POSITION& rNextPosition, CString& sKey, void*& rValue) const;
	
    virtual BOOL			resetpszKey(const char* pszOldKey, const char* pszNewKey);
    virtual TGRxObject*		remove(const char* pszKey);
	
    virtual BOOL			has(const char* pszEntryName) const;
    virtual long			numEntries() const;
	
    virtual BOOL			deletesObjects();
	
private:
	
	CMapStringToPtr			m_mapName2RxClass;
};

#endif //_TGRXIMPLDICTIONARY_H__
